var checkInterval;
var intervalCount;
function list() {
    $.blockUI({
        message: "Aguarde un momento por favor"
    });
    $.ajax({
        url: '/academico/maquinaalumno/myvms',
        type: 'post',
        dataType: 'json',
        success: function(response) {
            // se traen los datos al cargar la pagina
            areaTable = $('#myvms_table').dataTable({
                "sDom": "<'nuevo'> frtip",
                "sPaginationType": "bootstrap",
                bLengthChange: false,
                "oLanguage": {
                    "sLengthMenu": "_MENU_ records per page"
                },
                "aaData": response,
                "aoColumns": [
                {
                    "sTitle": ""
                },
                {
                    "sTitle": "Info"
                }
                //                    ,
                //                    {
                //                        "sTitle": "Descripcion"
                //                    }
                ],
                "aoColumnDefs": [
                {
                    "sWidth": "20%", 
                    "aTargets": [0]
                    },

                    {
                    "asSorting": [], 
                    "aTargets": [0]
                    },

                    {
                    "asSorting": ["asc"], 
                    "aTargets": [1]
                    }
                ]
            });
            $.unblockUI();
        },
        error: function(jqXHR, textStatus, errorThrown) {
            $.unblockUI();
            alert("Error");
            console.log(jqXHR);
            console.log(textStatus);
            console.log(errorThrown);
        }
    });
}

function checkVmStatus(jobid, accion) {
    if (intervalCount === 20) {
        intervalCount = 0;
        window.clearInterval(checkInterval);
        $.unblockUI();
        bootbox.alert("Ha llegado al tiempo l&iacute;mite sin respuesta. Favor contactar al administrador!", function() {
            window.location.href = '/academico/maquinaalumno';
        });
        return;
    }

    intervalCount++;

    $.ajax({
        url: '/admin/virtualmachine/checkvmstatus/',
        dataType: 'json',
        type: 'post',
        async: false,
        data: 'jobid=' + jobid,
        success: function(data) {
            if (data.response === 'OK') {
                intervalCount = 0;
                window.clearInterval(checkInterval);
                if (accion === "encender") {
                    $("#btn-encender").attr('disabled', 'disabled');
                    $("#btn-encender").toggleClass("disabled");
                    $("#btn-apagar").removeAttr('disabled');
                    $("#btn-apagar").toggleClass("disabled");
                    $("#btn-conectar").removeAttr('disabled');
                    $("#btn-conectar").toggleClass("disabled");
                } else if (accion === "apagar") {
                    $("#btn-encender").removeAttr('disabled');
                    $("#btn-encender").toggleClass("disabled");
                    $("#btn-apagar").attr('disabled', 'disabled');
                    $("#btn-apagar").toggleClass("disabled");
                    $("#btn-conectar").attr('disabled', 'disabled');
                    $("#btn-conectar").toggleClass("disabled");
                }
                $.unblockUI();
            }

        },
        error: function(a, b, c) {
        }
    });
}

$(document).ready(function() {
    $.blockUI({
        message: "Aguarde un momento por favor"
    });
    intervalCount = 0;
    menuClass('laboratorio');
    loadassignStudents();
    //    list();
    $('#btn-apagar').click(function(event) {
        event.preventDefault();
        $.ajax({
            url: '/admin/virtualmachine/apagarvm/',
            dataType: 'json',
            type: 'post',
            data: 'codigo_vm=' + $('#codigo_vm').val(),
            success: function(data) {
                console.log(data);
                if (data.response === 'error') {
                    alert("CLANK");
                } else {
                    $.blockUI({
                        message: "Aguarde un momento por favor"
                    });
                    checkInterval = setInterval(function() {
                        checkVmStatus(data.response.jobid, "apagar");
                    }, 5000);
                }
            },
            error: function(a, b, c) {
            }
        });

    });

    $('#btn-encender').click(function(event) {
        event.preventDefault();
        $.ajax({
            url: '/admin/virtualmachine/encendervm/',
            dataType: 'json',
            type: 'post',
            data: 'codigo_vm=' + $('#codigo_vm').val(),
            success: function(data) {
                if (data.response === 'error') {
                    var undefined;
                    if (data.message === undefined) {
                        bootbox.alert("Ha ocurido un error.");
                    } else {
                        bootbox.alert(data.message);
                    }
                } else {
                    $.blockUI({
                        message: "Aguarde un momento por favor"
                    });
                    checkInterval = setInterval(function() {
                        checkVmStatus(data.response.jobid, "encender");
                    }, 3000);
                }
            },
            error: function(a, b, c) {
            }
        });
    });
    $.unblockUI();
});

function assign(codigo_maquina_virtual) {
    window.location.href = '/admin/virtualmachine/vmassign/codigo_maquina_virtual/' + codigo_maquina_virtual;
}

function loadassignStudents() {
    $.ajax({
        //url: '/admin/filter/getstudentbylab/codigo_laboratorio/' + $('#codigo_laboratorio').val(),
        url: '/admin/filter/getassignstudent',
        dataType: 'json ',
        type: 'post',
        data: {
            'codigo_maquina_virtual': $('#codigo_maquina_virtual').val()
        },
        success: function(data) {
            if(data.result == 'ok') {
                $('#ul-assign').html(data.htmltext);                        
            } else {
                console.log('por el momento error');
            }
        }
    });
}